<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // var n = 100; // 全局 
        // function fn(){
        //     var n = 200; // fn局部作用域的变量 n 
        //     console.log(`第一次:${n}`) // 200 
        //     n = 500;
        //     console.log(`第二次:${n}`) // 500
        // }
        // console.log(`全局第一次:${n}`) // 100
        // fn();
        // console.log(`全局第二次:${n}`) // 100


        // 给一个变量赋值 先在自己的作用域内查找  如果有直接赋值 
        // 如果没有 去父级作用域内查找  如果有直接赋值   
        // 如果没有 继续向上查找  直到window 有直接复制 
        // 如果window 也没有 那么会把这个变量 变成全局变量 
        // var n = 100; // 全局 
        // function fn(){
        //     console.log(`第一次:${n}`) // 100
        //     n = 500;
        //     console.log(`第二次:${n}`) // 500
        // }
        // console.log(`全局第一次:${n}`) // 100
        // fn();
        // console.log(`全局第二次:${n}`) // 500



        // function fn(){
        //     // console.log(`第一次:${n}`) // 报错 
        //     // 函数内没有预解析 所有 第一行报错 
        //     n = 500;
        //     console.log(`第二次:${n}`) // 500 
        // }
        // // console.log(`全局第一次:${n}`) // 报错 因为没有预解析 不存在这个变量报错
        // fn();
        // console.log(`全局第二次:${n}`) // 500 


        
    </script>
</body>
</html>